package br.com.sistema.web.mb.permissao;

import java.util.List;

import br.com.framework.client.negocio.factory.FacadeFactory;
import br.com.framework.client.permissao.entidade.Grupo;
import br.com.framework.client.web.Paginador;
import br.com.framework.client.web.TipoOrdenacaoPaginador;
import br.com.sistema.negocio.facade.permissao.IFacadeGrupo;

public class GrupoPaginador extends Paginador<String, Grupo> {

	private static final long serialVersionUID = 1472603786458828653L;

	private List<Grupo> grupos;
	private Grupo grupo;

	private TipoOrdenacaoPaginador typeOrder;

	public GrupoPaginador(FacadeFactory facadeFactory, Grupo grupo, TipoOrdenacaoPaginador typeOrder) {
		super(facadeFactory);
		this.grupo = grupo;
		this.typeOrder = typeOrder;
	}

	@Override
	public List<Grupo> consultar(int primeiraLinha, int numeroDeLinhas, String orderBy, boolean descendente) {
		return consultar(primeiraLinha, numeroDeLinhas);
	}

	private List<Grupo> consultar(int primeiraLinha, int numeroDeLinhas) {
		grupos = facadeFactory.getFacade(IFacadeGrupo.class).buscar(grupo, typeOrder, primeiraLinha, numeroDeLinhas);
		return grupos;
	}

	@Override
	public String getChavePrimaria(Grupo grupo) {
		return grupo.getId() + "";
	}

	@Override
	public String getDefaultOrderBy() {
		return null;
	}

	@Override
	public int getTotalLinhas() {
		return facadeFactory.getFacade(IFacadeGrupo.class).buscarTotal(grupo);
	}

	@Override
	public Grupo pesquisarPorChavePrimaria(String pk) {
		return null;
	}

	public List<Grupo> getGrupos() {
		return grupos;
	}

	public void setGrupos(List<Grupo> grupos) {
		this.grupos = grupos;
	}

}
